import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JCheckBox;

import java.awt.BorderLayout;

import javax.swing.JComboBox;
import javax.swing.JButton;
import javax.swing.JTextPane;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;


public class Popup1 {

	private JFrame frame;

	public JFrame getFrame() {
		return frame;
	}

	public void setFrame(JFrame frame) {
		this.frame = frame;
	}

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					Popup1 window = new Popup1(null, null);
					window.frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the application.
	 */
	DeployManger p ;
	String progetto ;
	JTextPane pannello;
	public Popup1(DeployManger p,String progetto) {
		this.p = p;
		this.progetto = progetto;
		initialize();
	}

	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		frame = new JFrame();
		frame.setBounds(100, 100, 658, 300);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.getContentPane().setLayout(null);

		JButton btnNewButton = new JButton("close");
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				frame.setVisible(false);
			}
		});
		btnNewButton.setBounds(282, 239, 74, 23);
		frame.getContentPane().add(btnNewButton);

		JTextPane textPane = new JTextPane();
		textPane.setBounds(0, 0, 650, 228);
		frame.getContentPane().add(textPane);

		pannello = textPane;

	}
	/*public void startThread()
	{
		(new ThreadAllineaPom(pannello,p,progetto)).start();
	}*/
	/*public void settaSituazioneVersioni(String progetto, JTextPane t)
	{

		String messaggio = "";
		if( progetto.equals("BatchApp") )
		{
			String versioneCorr = getVersion(progetto, "<version>");
			messaggio = messaggio + "----Versione "+progetto+": "+versioneCorr+"\n";
			versioneCorr = getVersion(progetto, "<flows.common.version>");
			messaggio = messaggio + "----Versione "+progetto+" parent common (<flows.common.version>): "+versioneCorr+"\n";
			versioneCorr = getVersion(progetto+"\\BatchEngine", "<version>");
			messaggio = messaggio + "----Versione BatchEngine: "+versioneCorr+"\n";
			versioneCorr = getVersion(progetto+"\\BatchAppWar", "<version>");
			messaggio = messaggio + "----Versione BatchAppWar: "+versioneCorr+"\n";
			versioneCorr = getVersion(progetto+"\\BatchAppEar", "<version>");
			messaggio = messaggio + "----Versione BatchAppEar: "+versioneCorr+"\n";
			versioneCorr = getVersion(progetto+"\\RgiService", "<version>");
			messaggio = messaggio + "----Versione RgiService: "+versioneCorr+"\n";
			versioneCorr = getVersion(progetto+"\\BatchWrap", "<version>");
			messaggio = messaggio + "----Versione BatchWrap: "+versioneCorr+"\n";
		}
		if( progetto.equals("FlowsOperation") )
		{
			String versioneCorr = getVersion(progetto, "<version>");
			messaggio = messaggio + "----Versione "+progetto+": "+versioneCorr+"\n";
			versioneCorr = getVersion(progetto, "<flows.common.version>");
			messaggio = messaggio + "----Versione "+progetto+" parent common (<flows.common.version>): "+versioneCorr+"\n";
			versioneCorr = getVersion(progetto+"\\FlowsAnia", "<version>");
			messaggio = messaggio + "----Versione FlowsAnia: "+versioneCorr+"\n";
			versioneCorr = getVersion(progetto+"\\FlowsEngine", "<version>");
			messaggio = messaggio + "----Versione FlowsEngine: "+versioneCorr+"\n";
			versioneCorr = getVersion(progetto+"\\FlowsLogParser", "<version>");
			messaggio = messaggio + "----Versione FlowsLogParser: "+versioneCorr+"\n";
			versioneCorr = getVersion(progetto+"\\FlowsOperationWar", "<version>");
			messaggio = messaggio + "----Versione FlowsOperationWar: "+versioneCorr+"\n";
			versioneCorr = getVersion(progetto+"\\FlowsOperationEar", "<version>");
			messaggio = messaggio + "----Versione FlowsOperationEar: "+versioneCorr+"\n";
		}
		if (progetto.equals("FlowsSchedulerWeb")) 
		{
			String versioneCorr = getVersion(progetto, "<version>");
			messaggio = messaggio + "----Versione "+progetto+": "+versioneCorr+"\n";
			versioneCorr = getVersion(progetto, "<flows.common.version>");
			messaggio = messaggio + "----Versione "+progetto+" parent common (<flows.common.version>): "+versioneCorr+"\n";
		}
		if( progetto.equals("FlowsCommon") )
		{
			String versioneCorr = getVersion(progetto, "<version>");
			messaggio = messaggio + "----Versione "+progetto+": "+versioneCorr+"\n";

		}
		t.setText(messaggio);
	}*/
	/*public void showVersioneCollaudo(String progetto)
	{
		String messaggio = "";
		messaggio = messaggio+"-------------------VERSIONI DEPLOY COLLAUDO------------------------\n\n";
		String versioneCorrCommon = getVersion("FlowsCommon", "<version>");
		String rcxCommon =  versioneCorrCommon.substring(versioneCorrCommon.indexOf("-")+1,versioneCorrCommon.indexOf("-")+4);
		String versioneCommon = versioneCorrCommon.substring(0,versioneCorrCommon.indexOf("-"));
		int verRcCommon = Integer.parseInt(rcxCommon.substring(2, 3));
		String newVersionRelComm = versioneCommon+"-"+"RC"+verRcCommon;
		verRcCommon = verRcCommon+1;
		String newVersionDevComm = versioneCommon+"-"+"RC"+verRcCommon+"-SNAPSHOT";
		
		messaggio = messaggio + "FlowsCommon: "+versioneCorrCommon+" \n";
		messaggio = messaggio + "Release Version: "+newVersionRelComm+"\n";
		messaggio = messaggio + "Development Version: "+newVersionDevComm+"\n\n";
		if( progetto.equals("BatchApp") )
		{
			
			String versioneCorr = getVersion(progetto, "<version>");
			String rcx =  versioneCorr.substring(versioneCorr.indexOf("-")+1,versioneCorr.indexOf("-")+4);
			String versione = versioneCorr.substring(0,versioneCorr.indexOf("-"));
			int verRc = Integer.parseInt(rcx.substring(2, 3));
			String newVersionRel = versione+"-"+"RC"+verRc;
			verRc = verRc+1;
			String newVersionDev = versione+"-"+"RC"+verRc+"-SNAPSHOT";
			
			messaggio = messaggio + progetto+": "+versioneCorr+"\n";
			messaggio = messaggio + "Release Version: "+progetto+": "+newVersionRel+"\n";
			messaggio = messaggio + "Development Version: "+progetto+": "+newVersionDev+"\n";
			
		}
		if( progetto.equals("FlowsOperation") )
		{
			String versioneCorr = getVersion(progetto, "<version>");
			String rcx =  versioneCorr.substring(versioneCorr.indexOf("-")+1,versioneCorr.indexOf("-")+4);
			String versione = versioneCorr.substring(0,versioneCorr.indexOf("-"));
			int verRc = Integer.parseInt(rcx.substring(2, 3));
			String newVersionRel = versione+"-"+"RC"+verRc;
			verRc = verRc+1;
			String newVersionDev = versione+"-"+"RC"+verRc+"-SNAPSHOT";
			
			messaggio = messaggio + progetto+": "+versioneCorr+"\n";
			messaggio = messaggio + "Release Version: "+progetto+": "+newVersionRel+"\n";
			messaggio = messaggio + "Development Version: "+progetto+": "+newVersionDev+"\n";
		}
		if (progetto.equals("FlowsSchedulerWeb")) 
		{
			String versioneCorr = getVersion(progetto, "<version>");
			String rcx =  versioneCorr.substring(versioneCorr.indexOf("-")+1,versioneCorr.indexOf("-")+4);
			String versione = versioneCorr.substring(0,versioneCorr.indexOf("-"));
			int verRc = Integer.parseInt(rcx.substring(2, 3));
			String newVersionRel = versione+"-"+"RC"+verRc;
			verRc = verRc+1;
			String newVersionDev = versione+"-"+"RC"+verRc+"-SNAPSHOT";
			
			messaggio = messaggio + progetto+": "+versioneCorr+"\n";
			messaggio = messaggio + "Release Version: "+progetto+": "+newVersionRel+"\n";
			messaggio = messaggio + "Development Version: "+progetto+": "+newVersionDev+"\n";
		}
		
		pannello.setText(messaggio);

	}*/
	/*public void showVersioneProduzione(String progetto)
	{
		String messaggio = "";
		messaggio = messaggio+"---------------------------VERSIONI DEPLOY PRODUZIONE------------------------\n\n";
		String versioneCorrCommon = getVersion("FlowsCommon", "<version>");
		String rcxCommon =  versioneCorrCommon.substring(versioneCorrCommon.indexOf("-")+1,versioneCorrCommon.indexOf("-")+4);
		String versioneCommon = versioneCorrCommon.substring(0,versioneCorrCommon.indexOf("-"));
		int verRcCommon = Integer.parseInt(rcxCommon.substring(2, 3));
		String newVersionRelComm = versioneCommon;
		verRcCommon = verRcCommon+1;
		int verNum = Integer.parseInt(versioneCommon.replace(".", ""));
		verNum = verNum +1;
		String verFialeproduzioneDev = "";
		String verNumStr = verNum+"";
		for(int i = 0; i < verNumStr.length(); i++)
		{
			if( i != verNumStr.length()-1)
				verFialeproduzioneDev = verFialeproduzioneDev +verNumStr.toCharArray()[i]+"."; 
			else verFialeproduzioneDev = verFialeproduzioneDev +verNumStr.toCharArray()[i];
		}
		String newVersionDevComm = verFialeproduzioneDev+"-"+"RC0-SNAPSHOT";
		
		messaggio = messaggio + "FlowsCommon: "+versioneCorrCommon+" \n";
		messaggio = messaggio + "Release Version: "+newVersionRelComm+"\n";
		messaggio = messaggio + "Development Version: "+newVersionDevComm+"\n\n";
		if( progetto.equals("BatchApp") )
		{
			
			String versioneCorr = getVersion(progetto, "<version>");
			String rcx =  versioneCorr.substring(versioneCorr.indexOf("-")+1,versioneCorr.indexOf("-")+4);
			String versione = versioneCorr.substring(0,versioneCorr.indexOf("-"));
			int verRc = Integer.parseInt(rcx.substring(2, 3));
			String newVersionRel = versione;
			verRc = verRc+1;
			int verNumP = Integer.parseInt(versione.replace(".", ""));
			verNumP = verNumP +1;
			String verFialeproduzionePDev = "";
			String verNumPStr = verNumP+"";
			for(int i = 0; i < verNumStr.length(); i++)
			{
				verFialeproduzionePDev = verFialeproduzionePDev +verNumPStr.toCharArray()[i]+"."; 
			}
			String newVersionDevPComm = verFialeproduzionePDev+"-"+"RC0-SNAPSHOT";
			
			messaggio = messaggio + progetto+": "+versioneCorr+" \n";
			messaggio = messaggio + "Release Version: "+newVersionRel+"\n";
			messaggio = messaggio + "Development Version: "+newVersionDevPComm+"\n\n";
			
		}
		if( progetto.equals("FlowsOperation") )
		{
			
			String versioneCorr = getVersion(progetto, "<version>");
			String rcx =  versioneCorr.substring(versioneCorr.indexOf("-")+1,versioneCorr.indexOf("-")+4);
			String versione = versioneCorr.substring(0,versioneCorr.indexOf("-"));
			int verRc = Integer.parseInt(rcx.substring(2, 3));
			String newVersionRel = versione;
			verRc = verRc+1;
			int verNumP = Integer.parseInt(versione.replace(".", ""));
			verNumP = verNumP +1;
			String verFialeproduzionePDev = "";
			String verNumPStr = verNumP+"";
			for(int i = 0; i < verNumStr.length(); i++)
			{
				verFialeproduzionePDev = verFialeproduzionePDev +verNumPStr.toCharArray()[i]+"."; 
			}
			String newVersionDevPComm = verFialeproduzionePDev+"-"+"RC0-SNAPSHOT";
			
			messaggio = messaggio + progetto+": "+versioneCorr+" \n";
			messaggio = messaggio + "Release Version: "+newVersionRel+"\n";
			messaggio = messaggio + "Development Version: "+newVersionDevPComm+"\n\n";
			
		}
		if (progetto.equals("FlowsSchedulerWeb")) 
		{
			
			String versioneCorr = getVersion(progetto, "<version>");
			String rcx =  versioneCorr.substring(versioneCorr.indexOf("-")+1,versioneCorr.indexOf("-")+4);
			String versione = versioneCorr.substring(0,versioneCorr.indexOf("-"));
			int verRc = Integer.parseInt(rcx.substring(2, 3));
			String newVersionRel = versione;
			verRc = verRc+1;
			int verNumP = Integer.parseInt(versione.replace(".", ""));
			verNumP = verNumP +1;
			String verFialeproduzionePDev = "";
			String verNumPStr = verNumP+"";
			for(int i = 0; i < verNumStr.length(); i++)
			{
				verFialeproduzionePDev = verFialeproduzionePDev +verNumPStr.toCharArray()[i]+"."; 
			}
			String newVersionDevPComm = verFialeproduzionePDev+"-"+"RC0-SNAPSHOT";
			
			messaggio = messaggio + progetto+": "+versioneCorr+" \n";
			messaggio = messaggio + "Release Version: "+newVersionRel+"\n";
			messaggio = messaggio + "Development Version: "+newVersionDevPComm+"\n\n";
			
		}
		
		pannello.setText(messaggio);

	}*/
	public String getVersion(String progetto, String tag)
	{
		BufferedReader br = null;
		String ver = "";
		String rvCommon = "";
		try {

			String sCurrentLine;

			br = new BufferedReader(new FileReader(p.getPathWorkspace()+"\\"+progetto+"\\pom.xml"));

			while ((sCurrentLine = br.readLine()) != null) {
				if( sCurrentLine.contains(tag) )
				{
					rvCommon = sCurrentLine.substring(sCurrentLine.indexOf(tag)+tag.length(), sCurrentLine.indexOf("</"));
					break;
				}
			}

		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				if (br != null)br.close();
			} catch (IOException ex) {
				ex.printStackTrace();
			}
		}
		return rvCommon;

	}
}
